package cn.itcast.kafka.config;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * Kafka消费者配置工具类
 * 负责加载外部配置文件，提供统一的配置获取入口
 */
public class KafkaConsumerConfig {
    // 配置文件在resources目录下的路径
    private static final String CONFIG_FILE_PATH = "kafka-consumer.properties";
    // 存储加载后的配置
    private static Properties consumerProps;

    // 静态初始化块：类加载时自动加载配置，只执行一次
    static {
        consumerProps = new Properties();
        try (InputStream inputStream = KafkaConsumerConfig.class.getClassLoader().getResourceAsStream(CONFIG_FILE_PATH)) {
            // 检查配置文件是否存在
            if (inputStream == null) {
                throw new RuntimeException("未找到Kafka消费者配置文件，请检查路径：" + CONFIG_FILE_PATH);
            }
            // 加载配置文件内容到Properties对象
            consumerProps.load(inputStream);
        } catch (IOException e) {
            throw new RuntimeException("加载Kafka消费者配置文件失败", e);
        }
    }

    /**
     * 对外提供配置获取方法
     * 返回配置副本，防止外部代码修改原配置
     */
    public static Properties getConsumerProperties() {
        return (Properties) consumerProps.clone();
    }
}